package com.typ.blog.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.typ.blog.entity.User;
import com.typ.blog.mapper.UserMapper;
import com.typ.blog.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Objects;

/**
 * 路径：com.typ.blog.service.impl.UserServiceImpl.java
 * 类名：UserServiceImpl.java
 * 功能：用户信息
 * 备注：
 * 创建人：typ
 * 创建时间：2019/10/21 21:43
 * 修改人：
 * 修改备注：
 * 修改时间：
 */
@Slf4j
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 方法名：list
     * 功能：获取用户列表
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:25
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public PageInfo<User> list(Integer pageNum, Integer pageSize, String search) {
        PageHelper.startPage(pageNum, pageSize);
        List<User> list = userMapper.list(search);
        return new PageInfo<>(list);
    }

    /**
     * 方法名：login
     * 功能：用户登录
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:26
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public User login(String username) {
        return userMapper.login(username);
    }

    /**
     * 方法名：qryByUserId
     * 功能：根据id获取用户信息
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:26
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public User qryByUserId(Integer id) {
        return userMapper.qryByUserId(id);
    }

    /**
     * 方法名：save
     * 功能：新增、修改用户信息
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:26
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public int save(User user) {
        if(Objects.isNull(user.getId()) && !Objects.equals(0, user.getId())){
            return userMapper.insert(user);
        } else {
            return userMapper.update(user);
        }
    }

    /**
     * 方法名：updPwd
     * 功能：修改密码
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:27
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public int updPwd(Integer id, String password) {
        return userMapper.updPwd(id, password);
    }

    /**
     * 方法名：del
     * 功能：删除用户信息
     * 描述：
     * 创建人：typ
     * 创建时间：2019/11/26 21:27
     * 修改人：
     * 修改描述：
     * 修改时间：
     */
    @Override
    public int del(Integer id) {
        return userMapper.del(id);
    }
}
